package com.stefanini.pe.bbva.bp.in.dao.impl;

import java.math.BigDecimal;
import java.util.*;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import org.springframework.stereotype.Repository;

import com.ibatis.sqlmap.client.SqlMapClient;
import com.stefanini.pe.bbva.bp.in.dao.iface.GestionCuestionarioDAOIface;

@Repository
public class GestionCuestionarioDAOImpl extends SqlMapClientDaoSupport implements GestionCuestionarioDAOIface{
	
	@Autowired
	public GestionCuestionarioDAOImpl(SqlMapClient sqlMapClient) {
		super();
		super.setSqlMapClient(sqlMapClient);
	}
	
	public List listarCuestionarioRecomendaciones() throws Exception{
		HashMap parametros=new HashMap();
		getSqlMapClientTemplate().queryForList("BP_GESTION_CUESTIONARIO_SqlMap.listarCuestionarioRecomendaciones",parametros);
		return (List)parametros.get("result");
	}

	public List listarPerfilDatos(String in_idperfil) {
		HashMap parametros=new HashMap();
		parametros.put("in_idperfil", in_idperfil);
		getSqlMapClientTemplate().queryForList("BP_GESTION_CUESTIONARIO_SqlMap.listarPerfilDatos",parametros);
		return (List)parametros.get("result");
	}

	public List listarPreguntas(String in_idseccion) {
		HashMap parametros=new HashMap();
		parametros.put("in_idseccion", in_idseccion);
		getSqlMapClientTemplate().queryForList("BP_GESTION_CUESTIONARIO_SqlMap.listarPreguntas",parametros);
		return (List)parametros.get("result");
	}
	
	public List listarAlternativa(String in_idpregunta) throws Exception{
		HashMap parametros=new HashMap();
		parametros.put("in_idpregunta", in_idpregunta);
		getSqlMapClientTemplate().queryForList("BP_GESTION_CUESTIONARIO_SqlMap.listarAlternativa",parametros);
		return (List)parametros.get("result");
	}

	public void eliminarRecomendacion(String in_idperfil,String in_idpregunta, String in_idalternativa) throws Exception{
		HashMap parametros=new HashMap();
		parametros.put("in_idperfil", in_idperfil);
		parametros.put("in_idpregunta", in_idpregunta);
		parametros.put("in_idalternativa", in_idalternativa);
		getSqlMapClientTemplate().delete("BP_GESTION_CUESTIONARIO_SqlMap.eliminarRecomendacion",parametros);
	}

	public boolean insertarRecomendacion(String in_idperfil, String in_idpregunta, String in_idalternativa,
			String in_recomendacion, String in_codregistrocreacion, String in_terminalcreacion) {
		try {
			HashMap parametros=new HashMap();
			parametros.put("in_idperfil", in_idperfil);
			parametros.put("in_idpregunta", in_idpregunta);
			parametros.put("in_idalternativa", in_idalternativa);
			parametros.put("in_recomendacion", in_recomendacion);
			parametros.put("in_codregistrocreacion", in_codregistrocreacion);
			parametros.put("in_terminalcreacion", in_terminalcreacion);
			getSqlMapClientTemplate().insert("BP_GESTION_CUESTIONARIO_SqlMap.insertarRecomendacion",parametros);
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}		
	}

	public void modificarRecomendacion(String in_idperfil, String in_idpregunta, String in_idalternativa,
			String in_recomendacion, String in_codregistrocreacion,	String in_terminalmodificacion) throws Exception {		
		HashMap parametros=new HashMap();
		parametros.put("in_idperfil", in_idperfil);
		parametros.put("in_idpregunta", in_idpregunta);
		parametros.put("in_idalternativa", in_idalternativa);
		parametros.put("in_recomendacion", in_recomendacion);
		parametros.put("in_codregistrocreacion", in_codregistrocreacion);
		parametros.put("in_terminalmodificacion", in_terminalmodificacion);
		getSqlMapClientTemplate().update("BP_GESTION_CUESTIONARIO_SqlMap.actualizarRecomendacion",parametros);
	}	
	
	public void eliminarPerfilDatos(String idPerfil){
		try {
			Map<String,Object> param=new HashMap<String, Object>();
			param.put("in_idperfil", new BigDecimal(idPerfil));
			getSqlMapClientTemplate().queryForList("BP_GESTION_CUESTIONARIO_SqlMap.eliminarPerfilDatos",param);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
